package classificados.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import classificados.negocio.Classificados;
import classificados.negocio.Usuario;

@WebServlet("/CadastrarUsuario")
public class CadastrarUsuario extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private Classificados classificados;   

	public CadastrarUsuario() {
		super();
	}

	public void init() {
		classificados = Classificados.getInstancia();
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// recuperar os parâmetros... nome, login e senha
		String nome = request.getParameter("nome");
		String login = request.getParameter("login");
		String senha = request.getParameter("senha");
		String confirmaSenha = request.getParameter("confirmaSenha");
		Usuario novo = null;

		// se forem válidos, criar um objeto usuario
		if (nome != null && !nome.isEmpty() && login != null && !login.isEmpty() && 
				senha != null && !senha.isEmpty() && 
				confirmaSenha != null && !confirmaSenha.isEmpty()) {

			if (senha.equals(confirmaSenha)) {
				novo = new Usuario(nome, login, senha);
				// chamar o método adicionaUsuario de classificados
				classificados.adicionaUsuario(novo);

				// adicionar o objeto usuario na sessão
				HttpSession sessao = request.getSession();
				sessao.setAttribute("usuario", novo);

				request.setAttribute("msg", "Usuário cadastrado com sucesso!");
			}
			request.setAttribute("erro", "A senha a sua confirmação não são iguais!");
		} else {
			request.setAttribute("erro", "Parâmetros não foram informados corretamente!");
		}

		// redirecionar para a página principal
		request.getRequestDispatcher("/index.html").forward(request, response);
	}

}
